home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Applications 1996 May / SGI IRIX 6.2 Applications 1996 May.iso / dist / impr_dev.idb / usr / include / scandrv.h.z / scandrv.h
C/C++ Source or Header  |  1996-05-06  |  2KB  |  86 lines

  1. #ifndef __SCANDRV_H__
  2. #define __SCANDRV_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6.  
  7. /*
  8.  * scandrv.h
  9.  *
  10.  *      Functions for scanner driver writers
  11.  *
  12.  * Copyright 1992, Silicon Graphics, Inc.
  13.  * All Rights Reserved.
  14.  *
  15.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
  16.  * Inc.; the contents of this file may not be disclosed to third
  17.  * parties, copied or duplicated in any form, in whole or in part,
  18.  * without the prior written permission of Silicon Graphics, Inc.
  19.  *
  20.  * RESTRICTED RIGHTS LEGEND:
  21.  * Use, duplication or disclosure by the Government is subject to
  22.  * restrictions as set forth in subdivision (c)(1)(ii) of the Rights
  23.  * in Technical Data and Computer Software clause at DFARS
  24.  * 252.227-7013, and/or in similar or successor clauses in the FAR,
  25.  * DOD or NASA FAR Supplement. Unpublished - rights reserved under the
  26.  * Copyright Laws of the United States.
  27.  */
  28.  
  29. #ident "$Revision: 1.13 $"
  30.  
  31. #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
  32.  
  33. /*
  34.  * Command dispatch stuff
  35.  */
  36. typedef struct tag_scarg {
  37.     void *data;
  38.     int len;
  39. } SCARG;
  40.  
  41. typedef struct tag_scres {
  42.     void *data;
  43.     int len;
  44.     void *freeparam;
  45.     void (*free)(void *param, void *data);
  46.     int errno;
  47.     char *errMsg;
  48. } SCRES;
  49.  
  50. typedef void (*SCANFUNC)(int cmd, SCARG *arg, SCRES *res);
  51.  
  52. void SCDriverSetCallbacks(SCANFUNC *funcs, int nfuncs,
  53.               SCANFUNC *opts, int nopts);
  54. int SCDriverMainLoop(void);
  55. int SCDriverPutRow(void *row, int size);
  56. int SCDriverInit(char *arenaFile);
  57. int SCDriverPutStatus(SCSTATUS *status, char *driverMessage);
  58. int SCDriverInitChild(void);
  59. void SCDriverSyncFunction(void (*func)(void *), void *param);
  60. void SCDriverStopWriter(int writerPid);
  61. int SCDriverSendEvent(SCEVENT *event);
  62.  
  63. /*
  64.  * Queue stuff
  65.  */
  66. struct tag_scqueue;
  67.  
  68. typedef struct tag_scqueue SCQUEUE;
  69.  
  70. SCQUEUE * SCCreateQueue(int nelems);
  71. int SCDestroyQueue(SCQUEUE *q);
  72. int SCQueueLength(SCQUEUE *q);
  73. void SCEnqueue(SCQUEUE *q, void *data);
  74. void * SCDequeue(SCQUEUE *q);
  75. void SCUnblockQueue(SCQUEUE *q);
  76. void SCQdebug(SCQUEUE *q, char *pfx);
  77. void SCQueueClearWait(SCQUEUE *q);
  78. void SCQueueSetExit(SCQUEUE *q);
  79.  
  80. #endif /* C || C++ */
  81.  
  82. #ifdef __cplusplus
  83. }
  84. #endif
  85. #endif /* !__SCANDRV_H__ */
  86.